﻿using Dlls;
using Persistencia;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using UI.Classes;
using UI.Views.Consultas;

namespace XGerencial.Views.Cadastros
{
    /// <summary>
    /// Interaction logic for frmOperacoes.xaml
    /// </summary>
    public partial class frmOperacoes : Window
    {
        private Operacoe operacoes;
        private OperacoesDLL operacoesDll;

        public frmOperacoes()
        {
            operacoes = new Operacoe();
            operacoesDll = new OperacoesDLL();
            InitializeComponent();
        }

        private void InsertOrUpdate(object sender, RoutedEventArgs e)
        {
            try
            {
                if (txtCodigo.Text =="")
                {
                    operacoes.GeraFinanceiro = chkGeraFinanceiro.IsChecked;
                    operacoes.AtivoSN = chkSituacao.IsChecked;
                    operacoes.Nome = txtNome.Text;
                    operacoesDll.Insert(operacoes);
                    MessageBox.Show("Registro incluido com sucesso");
                    
                }
                else
                {
                    operacoes.GeraFinanceiro = chkGeraFinanceiro.IsChecked;
                    operacoes.AtivoSN = chkSituacao.IsChecked;
                    operacoes.Nome = txtNome.Text;
                    operacoesDll.Update(int.Parse(txtCodigo.Text),operacoes);
                    MessageBox.Show("Registro atualizado com sucesso");
                }
                operacoes = new Operacoe();
                LimpaCampos.reset(0, this);
 
            }
            catch (Exception ex)
            {

                MessageBox.Show("Registro não pode ser incluido/alterado" + ex.Message);
            }
        }

        private void Excluir(object sender, RoutedEventArgs e)
        {
            try
            {

                if (txtCodigo.Text!="")
                {
                    operacoesDll.Delete(int.Parse(txtCodigo.Text));
                    MessageBox.Show("Registro excluído com sucesso");
                    LimpaCampos.reset(0, this);
                }
                else
                {
                    MessageBox.Show("Selecione um registro para excluir");
                }

            }
            catch (Exception ex)
            {

                MessageBox.Show("Registro não pode ser excluido" + ex.Message);
            }
        }

        private void BuscarOperacao(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                if (txtCodigo.Text!="")
                {
                    Operacoe operacoes = operacoesDll.getOperacoes(int.Parse(txtCodigo.Text));
                    if (operacoes!=null)
                    {
                        txtCodigo.Text = operacoes.Codigo.ToString();
                        txtNome.Text = operacoes.Nome.ToString();
                        chkGeraFinanceiro.IsChecked = operacoes.GeraFinanceiro;
                        chkSituacao.IsChecked = operacoes.AtivoSN;
                    }
                    else
                    {
                        MessageBox.Show("Registro não encontrado");
                    }
                }
                else
                {
                    frmConsultaPadrao consultaPadrao = new frmConsultaPadrao("Operacoes");
                    consultaPadrao.Owner = this;
                    consultaPadrao.Show();
                }
            }
        }
    }
}
